package com.tedu.api.io;

import org.apache.commons.imaging.*;
import org.junit.Test;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * 图片  流
 * Apache Commons   Imaging   第三方库---聊天室
 * 提供图片读写操作，处理格式：jpg、png、tiff、gif等
 *
 * 准备： 1.项目结构是Maven
 * 2.准备一张小图片
 * 3.知道maven仓库网站--->百度  搜：mvn仓库
 * 第三方库---高手提供好类库：图片格式、图片大小等！
 * https://mvnrepository.com/
 * maven仓库搜：commons-imaging
 * 仓库  坐标【理解为jar的下载链接】------粘贴到pom.xml文件中
 * <dependency>
 * <groupId>org.apache.commons</groupId>
 * <artifactId>commons-imaging</artifactId>
 * <version>1.0-alpha2</version>
 * </dependency>
 */
public class ImageFile {
    /**
     * Apache Commons Imaging
     * jar中很多类，静态方法设置类中
     * Imaging类--->getBufferedImage(文件引用传入)
     * 读操作：可以读到宽度、高度、像素信息等
     */
    @Test
    public void testImageR() throws IOException, ImageReadException {
        //File  文件：获取文件路径
        File file = new File("西红柿.jpg");
        //读取图片文件信息
        BufferedImage bi = Imaging.getBufferedImage(file);
        //打印  西红柿.jpg 文件信息：宽高
        int width = bi.getWidth();  //宽
        int height = bi.getHeight(); //高
        System.out.println("图片宽:" + width + "高:" + height);
    }

    /**
     * Apache Commons Imaging
     * 写操作：先进行读操作，然后在写出图片
     * Imaging 图片类：静态写出方法
     * Imaging.writeImage(读入图片，写出图片，指定图片格式，null)
     * 指定图片格式类：ImageFormats  图片格式类
     * BufferedImage缓冲图片流--高效传输图片
     */
    @Test
    public void testImageW() throws IOException, ImageReadException, ImageWriteException {
        //读入图片
        File file = new File("coke.jpg");
        BufferedImage src = Imaging.getBufferedImage(file);
        //写出图片
        File desc = new File("写出图片.jpg");
        Imaging.writeImage(src, desc, ImageFormats.PNG, null);
        System.out.println("写出成功~~");
    }
}